package com.liuqi.openai.model.handler;

/**
 * 流式响应回调处理器
 *
 * @author liuqi
 * @date 2025/7/19
 **/
public interface StreamingResponseHandler {

    /**
     * 每当AI模型响应流式数据时, 调用该方法
     *
     * @param content   新生成的内容, 它是完整响应的一部分
     */
    void onNext(String content);

    /**
     * 思考内容回调
     *
     * @param think 新生成的思考内容, 它是完整响应的一部分
     */
    default void onThink(String think) { }

    /**
     * 当AI模型完成响应流时调用
     *
     * DOWN 时调用
     */
    default void onComplete() { }

    /**
     * 当流式传输过程中出现错误时，将调用此方法
     *
     * @param error 异常信息
     */
    default void onError(Throwable error) { }

}
